viridian: separate interrupt related enlightenment implementations...
authorPaul Durrant <paul.durrant@citrix.com>
Fri, 9 Nov 2018 10:36:52 +0000 (11:36 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 9 Nov 2018 10:36:52 +0000 (11:36 +0100)
commit6889ae02b63d0dc20d0278c7073d443e3802b653
treee967b4d1428cd46bbc7803c98a5094c3e13da711
parent21b17f9eaad4e7d1b7cf2950e8d113f8c79339ea
viridian: separate interrupt related enlightenment implementations...

...into new 'synic' module.

The SynIC (synthetic interrupt controller) is specified [1] to be a super-
set of a virtualized LAPIC, and its definition encompasses all
enlightenments related to virtual interrupt control.

This patch reduces the size of the main viridian source module by giving
these enlightenments their own module. This is done in anticipation of
implementation of more such enlightenments and a desire not to further
lengthen then main source module when this work is done.

Whilst moving the code:

- Fix various style issues.
- Move the MSR definitions into the header (since they are now needed in
  more than one source module).

[1] https://github.com/MicrosoftDocs/Virtualization-Documentation/raw/live/tlfs/Hypervisor%20Top%20Level%20Functional%20Specification%20v5.0C.pdf

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Reviewed-by: Wei Liu <wei.liu2@citrix.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
xen/arch/x86/hvm/viridian/Makefile
xen/arch/x86/hvm/viridian/private.h [new file with mode: 0644]
xen/arch/x86/hvm/viridian/synic.c [new file with mode: 0644]
xen/arch/x86/hvm/viridian/viridian.c